#include <iostream>
#include <set>
using std::cout;
using std::endl;
using std::set;

template <class T>
T add(T a,T b){
    return a + b;
}

template <class T>
set<T> merge(set<T> a,set<T> b){
    set<T> ret = a;
    ret.insert(b.begin(),b.end());
    return ret;
}

void test0(){
    cout << add(1,2) << endl;
    cout << add(1.2,1.2) << endl;

    set<int> s1 = {1,2,3};
    set<int> s2 = {4,5,6,7};

    set<int> s = merge(s1,s2);
    for(auto & ele : s){
        cout << ele << " ";
    }
    cout << endl;
}

int main(int argc, char * argv[])
{
    test0();
    return 0;
}


